home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Strate…Tools for the Enterprise / Microsoft Internet Strategy & Tools for the Enterprise.iso / bkoffice / inetsrv.nts / nt351qfe.usa / i386 / update.inf < prev    next >
INI File  |  1995-11-16  |  39KB  |  893 lines

  1. [FileKeyedClasses]
  2.     Hal            = hal.dll
  3.     Ntoskrnl       = ntoskrnl.exe
  4. [FilesKeyedSections]
  5.     FilesHal       = $(STF_HALDEST)
  6.     FilesNtoskrnl  = $(STF_WINDOWSSYSPATH)
  7. [FilesHal]
  8.     HAL      = 1, HAL.DLL      , RENAME=$(NEWFILE), NOLOG, UNDO
  9.     HALAPIC  = 1, HALAPIC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  10.     HALMPS   = 1, HALMPS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  11.  
  12. [FilesNtoskrnl]
  13.     NTKRNLMP = 1, NTKRNLMP.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  14.     NTOSKRNL = 1, NTOSKRNL.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  15.  
  16. [FileSections]
  17.     FilesPrimary        = C:
  18.     FilesOsLoader       = $(STF_OSLDEST)
  19.     FilesPal            = $(STF_HALDEST)
  20.     FilesWinnt          = $(STF_WINDOWSPATH)
  21.     FilesSystem32       = $(STF_WINDOWSSYSPATH)
  22.     FilesSystem         = $(STF_WINDOWSPATH)\system
  23.     FilesDrivers        = $(STF_WINDOWSSYSPATH)\drivers
  24.     FilesConfig         = $(STF_WINDOWSSYSPATH)\config
  25.     FilesWinspool       = $(STF_WINDOWSSYSPATH)\spool
  26.     FilesPrnDriver      = $(STF_WINDOWSSYSPATH)\spool\drivers\$(!STF_PRNPLATFORM)\1
  27.     FilesPrnProc        = $(STF_WINDOWSSYSPATH)\spool\prtprocs\$(!STF_PRNPLATFORM)
  28.     FilesDbgCom         = $(STF_WINDOWSPATH)\symbols\com
  29.     FilesDbgCpl         = $(STF_WINDOWSPATH)\symbols\cpl
  30.     FilesDbgDll         = $(STF_WINDOWSPATH)\symbols\dll
  31.     FilesDbgDrv         = $(STF_WINDOWSPATH)\symbols\drv
  32.     FilesDbgExe         = $(STF_WINDOWSPATH)\symbols\exe
  33.     FilesDbgScr         = $(STF_WINDOWSPATH)\symbols\scr
  34.     FilesDbgSys         = $(STF_WINDOWSPATH)\symbols\sys
  35. [FileSectionsCopyAlways]
  36.     FilesSystem32CopyAlways = $(STF_WINDOWSSYSPATH)
  37.     FilesDriversCopyAlways  = $(STF_WINDOWSSYSPATH)\drivers
  38. [FileSectionsWINNT]
  39.     FilesInfWinnt       = $(STF_WINDOWSSYSPATH)
  40. [FileSectionsLANMANNT]
  41.     FilesInfLanmanNT    = $(STF_WINDOWSSYSPATH)
  42. [FileSectionsCopyAlwaysWINNT]
  43.     FilesSystem32CopyAlwaysWinnt = $(STF_WINDOWSSYSPATH)
  44. [FileSectionsCopyAlwaysLANMANNT]
  45.     FilesSystem32CopyAlwaysLanmanNT = $(STF_WINDOWSSYSPATH)
  46. [FilesPrimary]
  47. 1 = 1, NTLDR       , RENAME=$(NEWFILE), NOLOG, UNDO
  48.  
  49. [FilesOsLoader]
  50.  
  51. [FilesPal]
  52.  
  53. [FilesWinnt]
  54.  
  55. [FilesSystem32]
  56. 1 = 1, ADVAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  57. 2 = 1, BROWSER.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  58. 3 = 1, CIRRUS.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  59. 4 = 1, CMD.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  60. 5 = 1, CSRSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  61. 6 = 1, CSRSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  62. 7 = 1, DHCPSSVC.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  63. 8 = 1, FTP.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  64. 9 = 1, FTPSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  65. 10 = 1, FTSRCH.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  66. 11 = 1, GLSRV.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  67. 12 = 1, IMAGEHLP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  68. 13 = 1, INETMIB1.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  69. 14 = 1, KBDUK.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  70. 15 = 1, KERNEL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  71. 16 = 1, KRNL286.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  72. 17 = 1, KRNL386.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  73. 18 = 1, LOCALSPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  74. 19 = 1, LPRMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  75. 20 = 1, LSASRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  76. 21 = 1, LSASS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  77. 22 = 1, MSGINA.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  78. 23 = 1, NETAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  79. 24 = 1, NETUI2.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  80. 25 = 1, NTBACKUP.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  81. 26 = 1, NTDLL.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  82. 27 = 1, NTLMSSPS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  83. 28 = 1, NTVDM.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  84. 29 = 1, NWAPI16.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  85. 30 = 1, NWPROVAU.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  86. 31 = 1, NWWKS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  87. 32 = 1, OLE2DISP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  88. 33 = 1, OLE2NLS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  89. 34 = 1, OLE32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  90. 35 = 1, OLEAUT32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  91. 36 = 1, OLETHK32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  92. 37 = 1, OPENGL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  93. 38 = 1, PERFMON.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  94. 39 = 1, PROGMAN.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  95. 40 = 1, QV.DLL      , RENAME=$(NEWFILE), NOLOG, UNDO
  96. 41 = 1, RASCHAP.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  97. 42 = 1, RASNBFCP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  98. 43 = 1, RASPPPEN.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  99. 44 = 1, RASSRV.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  100. 45 = 1, ROUTE.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  101. 46 = 1, RPCLTC1.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  102. 47 = 1, RPCLTC3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  103. 48 = 1, RPCLTC5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  104. 49 = 1, RPCLTC6.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  105. 50 = 1, RPCLTC7.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  106. 51 = 1, RPCLTS5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  107. 52 = 1, RPCRT4.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  108. 53 = 1, RPCSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  109. 54 = 1, RPLSVC.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  110. 55 = 1, SAMLIB.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  111. 56 = 1, SAMSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  112. 57 = 1, SECURITY.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  113. 58 = 1, SENDFL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  114. 59 = 1, SFMMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  115. 60 = 1, SFMPRINT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  116. 61 = 1, SHELL32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  117. 62 = 1, SRVSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  118. 63 = 1, TYPELIB.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  119. 64 = 1, UNTFS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  120. 65 = 1, USER32.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  121. 66 = 1, USERINIT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  122. 67 = 1, WIN32SPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  123. 68 = 1, WINFILE.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  124. 69 = 1, WINHLP32.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  125. 70 = 1, WINLOGON.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  126. 71 = 1, WINS.EXE    , RENAME=$(NEWFILE), NOLOG, UNDO
  127. 72 = 1, WINSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  128. 73 = 1, WOW32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  129. 74 = 1, WOWEXEC.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  130. 75 = 1, WOWFAXUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  131. 76 = 1, WSOCK32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  132. 77 = 1, PROBREP.TXT , RENAME=$(NEWFILE), NOLOG, UNDO
  133.  
  134. [FilesSystem]
  135.  
  136. [FilesDrivers]
  137. 1 = 1, AFD.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  138. 2 = 1, AHA154X.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  139. 3 = 1, AIC78XX.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  140. 4 = 1, ATAPI.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  141. 5 = 1, ATI.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  142. 6 = 1, BHNT.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  143. 7 = 1, CIRRUS.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  144. 8 = 1, DC21X4.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  145. 9 = 1, DEFEA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  146. 10 = 1, DPTSCSI.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  147. 11 = 1, ELNKMC.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  148. 12 = 1, F70N3.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  149. 13 = 1, NCRC700.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  150. 14 = 1, NDIS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  151. 15 = 1, NE3200.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  152. 16 = 1, NETBT.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  153. 17 = 1, NPMCA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  154. 18 = 1, NTFS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  155. 19 = 1, NWLNKIPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  156. 20 = 1, NWLNKNB.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  157. 21 = 1, NWLNKRIP.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  158. 22 = 1, NWLNKSPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  159. 23 = 1, NWRDR.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  160. 24 = 1, PCMCIA.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  161. 25 = 1, RDR.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  162. 26 = 1, S3.SYS      , RENAME=$(NEWFILE), NOLOG, UNDO
  163. 27 = 1, SCSIDISK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  164. 28 = 1, SFMATALK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  165. 29 = 1, SFMSRV.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  166. 30 = 1, SRV.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  167. 31 = 1, TCPIP.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  168. 32 = 1, WDVGA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  169. 33 = 1, STREAMS.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  170. 34 = 1, ASYNCMAC.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  171.  
  172. [FilesConfig]
  173. [FilesWinspool]
  174. [FilesPrnDriver]
  175. 1 = 1, DICONIX.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  176. 2 = 1, HPPCL5MS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  177. 3 = 1, PSCRIPT.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  178. 4 = 1, PSCRPTUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  179. 5 = 1, RASDD.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  180. 6 = 1, RASDDUI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  181.  
  182. [FilesPrnProc]
  183.  
  184. [FilesDbgCom]
  185. [FilesDbgCpl]
  186. [FilesDbgDll]
  187. [FilesDbgDrv]
  188. [FilesDbgExe]
  189. [FilesDbgScr]
  190. [FilesDbgSys]
  191. [FilesInfWinnt]
  192.  
  193. [FilesInfLanmanNT]
  194. 1 = 1, NWDOC.HLP, RENAME=$(NEWFILE), NOLOG, UNDO
  195.  
  196. [FilesSystem32CopyAlways]
  197.  
  198. [FilesDriversCopyAlways]
  199. [FilesSystem32CopyAlwaysWINNT]
  200. [FilesSystem32CopyAlwaysLANMANNT]
  201. [ProcessorID]
  202.     ProcessorID_I386  = I386
  203.     ProcessorID_I486  = I486
  204.     ProcessorID_I586  = I586
  205.     ProcessorID_R4000 = R4000
  206. [UiVars]
  207.     STF_PLATFORMDET    = "" ? $(!LIBHANDLE) GetPlatform
  208.     STF_CSDVER         = 768
  209.     STF_BUILDVER       = 1057
  210.     STF_CSD1_NT35      = 256
  211.     STF_NT31_BUILDVER  = 528
  212.     STF_NT35_BUILDVER  = 807
  213.     STF_NT351_BUILDVER = 1057
  214.     STF_NT351_MAJORVER = 3
  215.     STF_NT351_MINORVER = 51
  216.     STF_PRIMARY        = "C:"
  217.     STF_NTDRIVE        = ""
  218.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  219.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  220.     STF_CONTROLSET     = CurrentControlSet
  221.     VolumeList         = {} ? $(!LIBHANDLE) GetHardDriveLetters
  222.     VolumeFSList       = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
  223.     VolumeFreeList     = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
  224.     DisketteList       = {} ? $(!LIBHANDLE) GetFloppyDriveLetters
  225. [FreeSpaceI386]
  226.     RequiredFreeWinnt  = 25
  227. [FreeSpaceMips]
  228.     RequiredFreeWinnt  = 32
  229. [FreeSpaceppc]
  230.     RequiredFreeWinnt  = 32
  231. [FreeSpaceAlpha]
  232.     RequiredFreeWinnt  = 27
  233. [NVRAMVars]
  234.     SystemPartition = "" ? $(!LIBHANDLE) GetNVRAMVar SYSTEMPARTITION
  235.     OsLoader        = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADER
  236.     OsLoadPartition = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADPARTITION
  237.     OsLoadFilename  = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADFILENAME
  238. [Shell Commands]
  239.     set-title "Windows NT Setup"
  240.     set-subst CR = "\r"
  241.     set-subst LF = "\n"
  242.     set STF_LANGUAGE = ENG
  243.     read-syms Strings
  244.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard1)
  245.     set BillboardPushed = TRUE
  246.     set !LIBHANDLE      = ""
  247.     set !PATCHLIBHANDLE = ""
  248.     install   LoadSetupLibrary
  249.     read-syms ProductType
  250.     ifstr(i) $(!STF_PLATFORM) == I386
  251.         set STF_PRNPLATFORM = "w32x86"
  252.     else-ifstr(i) $(!STF_PLATFORM) == Mips
  253.         set STF_PRNPLATFORM = "w32mips"
  254.     else-ifstr(i) $(!STF_PLATFORM) == ppc
  255.         set STF_PRNPLATFORM = "w32ppc"
  256.     else-ifstr(i) $(!STF_PLATFORM) == Alpha
  257.         set STF_PRNPLATFORM = "w32alpha"
  258.     endif
  259.     read-syms UiVars
  260.     detect    UiVars
  261.     read-syms FreeSpace$(!STF_PLATFORM)
  262.     ifstr(i) $(STF_PLATFORM) != $(STF_PLATFORMDET)
  263.          ifstr(i) $(BillboardPushed) == TRUE
  264.              shell "subroutn.inf" PopBillboard
  265.              set BillboardPushed = FALSE
  266.          endif
  267.          shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String1)
  268.          goto patchnotdone
  269.     endif
  270.     shell "registry.inf" CheckSetupModify
  271.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  272.         ifstr(i) $(BillboardPushed) == TRUE
  273.             shell "subroutn.inf" PopBillboard
  274.             set BillboardPushed = FALSE
  275.         endif
  276.         Debug-Output "shelling CheckSetupModify failed"
  277.         goto patchnotdone
  278.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  279.         ifstr(i) $(BillboardPushed) == TRUE
  280.             shell "subroutn.inf" PopBillboard
  281.             set BillboardPushed = FALSE
  282.         endif
  283.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  284.         goto patchnotdone
  285.     endif
  286.     install   LoadPatchLibrary
  287.     shell "" GetCheckedFree
  288.     ifint $($ShellCode) == $(!SHELL_CODE_OK)
  289.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  290.             ifstr(i) $($R1) == "checked"
  291.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String15)
  292.                 goto patchnotdone
  293.             endif
  294.         endif
  295.     endif
  296.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMajorVersion
  297.     ifint $(STATUS) > $(STF_NT351_MAJORVER)
  298.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  299.         goto patchnotdone
  300.     else-ifint $(STATUS) = $(STF_NT351_MAJORVER)
  301.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMinorVersion
  302.         ifint $(STATUS) > $(STF_NT351_MINORVER)
  303.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  304.             goto patchnotdone
  305.         endif
  306.     endif
  307.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckBuildVersion
  308.     ifint $(STATUS) <= $(STF_NT35_BUILDVER)
  309.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String16)
  310.         goto patchnotdone
  311.     else-ifint $(STATUS) < $(STF_NT351_BUILDVER)
  312.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String17)
  313.         goto patchnotdone
  314.     else-ifint $(STATUS) > $(STF_NT351_BUILDVER)
  315.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  316.         goto patchnotdone
  317.     endif
  318.     ifstr(i) $(!STF_PLATFORM) == ppc
  319.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" 33554432 KeyCurrentVersion
  320.         ifstr(i) $(KeyCurrentVersion) != ""
  321.             GetRegValue $(KeyCurrentVersion) "CSDVersion" CSDVersionList
  322.             ifstr(i) $(CSDVersionList) == "Power Managed Version X"
  323.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  324.                 goto patchnotdone
  325.             endif
  326.             GetRegValue $(KeyCurrentVersion) "PowerManagedVersion" PMVersionList
  327.             ifstr(i) $(PMVersionList) != ""
  328.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  329.                 goto patchnotdone
  330.             endif
  331.         endif
  332.     endif
  333. skip_patchvercheck = +
  334.     GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
  335.     ifint *($(VolumeFreeList), ~($(VolumeList), $(!STF_NTDRIVE))) < $(RequiredFreeWinnt)
  336.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String13a)$(RequiredFreeWinnt)$(String13b)$(!STF_NTDRIVE)$(String13c)
  337.         goto patchnotdone
  338.     endif
  339.     set STF_PRODUCT = ""
  340.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
  341.     ifstr(i) $(KeyProductOption) != ""
  342.         GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
  343.         set TempProductType = *($(ProductTypeList),4)
  344.         ifstr(i) $(TempProductType) == "winnt"
  345.             set !STF_PRODUCT = WINNT
  346.             set !PRODUCT_DIR = WINNT
  347.         else-ifstr(i) $(TempProductType) == "lanmannt"
  348.             set !STF_PRODUCT = LANMANNT
  349.             set !PRODUCT_DIR = NTAS
  350.         else-ifstr(i) $(TempProductType) == "servernt"
  351.             set !STF_PRODUCT = SERVERNT
  352.             set !PRODUCT_DIR = NTAS
  353.         endif
  354.         CloseRegKey $(KeyProductOptions)
  355.     endif
  356.     ifstr(i) $(STF_PRODUCT) == ""
  357.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String14)
  358.         goto patchnotdone
  359.     endif
  360.     ifstr(i) $(!STF_PLATFORM) == I386
  361.         set STF_HALDEST = $(!STF_WINDOWSSYSPATH)
  362.         set STF_OSLDEST = C:\
  363.     else
  364.         read-syms NVRAMVars
  365.         detect    NVRAMVars
  366.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest         +
  367.                                                          $(SystemPartition) +
  368.                                                          $(OsLoader)        +
  369.                                                          $(OsLoadPartition) +
  370.                                                          $(OsLoadFilename)
  371.         ifstr(i) $(STATUS) == ERROR
  372.             goto patchnotdone
  373.         else
  374.             set STF_OSLDEST = $(STATUS)
  375.             set STF_HALDEST = $(STATUS)
  376.         endif
  377.     endif
  378.     read-syms FilesKeyedSections
  379.     set KeyedClassKeys  = ^(FileKeyedClasses, 0)
  380.     set KeyedClassFiles = ^(FileKeyedClasses, 1)
  381.     set KeyedClassFilesList = {}
  382.     ForListDo $(KeyedClassKeys)
  383.         set TmpKey       = Files$($)
  384.         set TmpFile      = #(FileKeyedClasses, $($), 1)
  385.         set TmpFilePath  = $($(TmpKey))\$(TmpFile)
  386.         set KeyedClassFilesList = >($(KeyedClassFilesList), $(TmpFilePath))
  387.     EndForListDo
  388.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFileTypes $(KeyedClassFilesList)
  389.     ifstr(i) $(STATUS) == ERROR
  390.         goto patchnotdone
  391.     else-ifstr(i) $(STATUS) == SETUPLOGNOTPRESENT
  392.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String11)
  393.         goto patchnotdone
  394.     else
  395.         ForListDo $(KeyedClassKeys)
  396.             set $($)Type = *($(STATUS), $(#))
  397.         EndForListDo
  398.     endif
  399.     ifstr(i) $(BillboardPushed) == TRUE
  400.         shell "subroutn.inf" PopBillboard
  401.         set BillboardPushed = FALSE
  402.     endif
  403.     shell "" QueryOkCancel $(String9)
  404.     ifstr(i) $($R1) == "OK"
  405.     else
  406.         set String = $(String12)
  407.         goto finish2
  408.     endif
  409.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard2)
  410.     set BillboardPushed = TRUE
  411.     set MoveFileExList  = {}
  412.     read-syms FileSections
  413.     set FileSectionsList = ^(FileSections, 0)
  414.     set FileSource  = $(!STF_SRCDIR)
  415.     ForListDo $(FileSectionsList)
  416.         set FileSection = $($)
  417.         set FileDest    = $($($))
  418.         set FileList    = ^($(FileSection), 0)
  419.         ForListDo $(FileList)
  420.             set FileKey = $($)
  421.             set File    = #($(FileSection), $(FileKey), 2)
  422.             set FileDestFullPath = $(FileDest)\$(File)
  423.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  424.             ifstr(i) $(STATUS) == YES
  425.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  426.                 ifstr(i) $(STATUS) == ERROR
  427.                     goto patchnotdone
  428.                 else
  429.                     ifstr(i) $(STATUS) == "YES"
  430.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  431.                         ifstr(i) $(NEWFILE) == ERROR
  432.                             goto patchnotdone
  433.                         else
  434.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  435.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  436.                         endif
  437.                     else
  438.                         set NEWFILE = $(File)
  439.                     endif
  440.                     install Install-File
  441.                 endif
  442.             endif
  443.         EndForListDo
  444.     EndForListDO
  445.     set FileSource  = $(!STF_SRCDIR)
  446.     ForListDo $(KeyedClassKeys)
  447.         set FileSection = Files$($)
  448.         set FileDest    = $($(FileSection))
  449.         set FileKey     = $($($)Type)
  450.         set KeyedClassChoices = ^(Files$($), 0)
  451.         ifcontains(i) $(FileKey) in $(KeyedClassChoices)
  452.             set File             = #(FileKeyedClasses, $($), 1)
  453.             set FileDestFullPath = $(FileDest)\$(File)
  454.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  455.             ifstr(i) $(STATUS) == YES
  456.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  457.                 ifstr(i) $(STATUS) == ERROR
  458.                     goto patchnotdone
  459.                 else
  460.                     ifstr(i) $(STATUS) == "YES"
  461.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  462.                         ifstr(i) $(NEWFILE) == ERROR
  463.                             goto patchnotdone
  464.                         else
  465.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  466.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  467.                         endif
  468.                     else
  469.                         set NEWFILE = $(File)
  470.                     endif
  471.                     install Install-File
  472.                 endif
  473.             endif
  474.         endif
  475.     EndForListDo
  476.     ifstr(i) $(STF_PRODUCT) == "WINNT"
  477.         set TEMP_PRODUCT = WINNT
  478.     else
  479.         set TEMP_PRODUCT = LANMANNT
  480.     endif
  481.     read-syms FileSections$(TEMP_PRODUCT)
  482.     set FileSectionsList = ^(FileSections$(TEMP_PRODUCT), 0)
  483.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  484.     ForListDo $(FileSectionsList)
  485.         set FileSection = $($)
  486.         set FileDest    = $($($))
  487.         set FileList    = ^($(FileSection), 0)
  488.         ForListDo $(FileList)
  489.             set FileKey = $($)
  490.             set File    = #($(FileSection), $(FileKey), 2)
  491.             set FileDestFullPath = $(FileDest)\$(File)
  492.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  493.             ifstr(i) $(STATUS) == YES
  494.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  495.                 ifstr(i) $(STATUS) == ERROR
  496.                     goto patchnotdone
  497.                 else
  498.                     ifstr(i) $(STATUS) == "YES"
  499.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  500.                         ifstr(i) $(NEWFILE) == ERROR
  501.                             goto patchnotdone
  502.                         else
  503.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  504.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  505.                         endif
  506.                     else
  507.                         set NEWFILE = $(File)
  508.                     endif
  509.                     install Install-File
  510.                 endif
  511.             endif
  512.         EndForListDo
  513.     EndForListDO
  514.     ifstr(i) $(BillboardPushed) == TRUE
  515.         shell "subroutn.inf" PopBillboard
  516.         set BillboardPushed = FALSE
  517.     endif
  518.     read-syms FileSectionsCopyAlways
  519.     set FileSectionsList = ^(FileSectionsCopyAlways, 0)
  520.     set FileSource  = $(!STF_SRCDIR)
  521.     ForListDo $(FileSectionsList)
  522.         set FileSection = $($)
  523.         set FileDest    = $($($))
  524.         set FileList    = ^($(FileSection), 0)
  525.         ForListDo $(FileList)
  526.             set FileKey = $($)
  527.             set File    = #($(FileSection), $(FileKey), 2)
  528.             set NEWFILE = $(File)
  529.             set FileDestFullPath = $(FileDest)\$(File)
  530.             install Install-File
  531.         EndForListDo
  532.     EndForListDO
  533.     read-syms FileSectionsCopyAlways$(TEMP_PRODUCT)
  534.     set FileSectionsList = ^(FileSectionsCopyAlways$(TEMP_PRODUCT), 0)
  535.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  536.     ForListDo $(FileSectionsList)
  537.         set FileSection = $($)
  538.         set FileDest    = $($($))
  539.         set FileList    = ^($(FileSection), 0)
  540.         ForListDo $(FileList)
  541.             set FileKey = $($)
  542.             set File    = #($(FileSection), $(FileKey), 2)
  543.             set NEWFILE = $(File)
  544.             set FileDestFullPath = $(FileDest)\$(File)
  545.             install Install-File
  546.         EndForListDo
  547.     EndForListDO
  548.     read-syms ProgressCopy$(!STF_LANGUAGE)
  549.     install   Install-DoCopy
  550.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  551.         goto patchnotdone
  552.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  553.         goto patchnotdone
  554.     endif
  555. processmovefileex=+
  556.     ForListDo $(MoveFileExList)
  557.         set ExistingPath = *($($), 1)
  558.         set NewPath      = *($($), 2)
  559.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), CopyFileOnReboot $(ExistingPath) $(NewPath)
  560.         ifstr(i) $(STATUS) == ERROR
  561.             goto patchnotdone
  562.         endif
  563.     EndForListDo
  564.     ifstr(i) $(!STF_PLATFORM) == I386
  565.         set NtLdrPath = $(STF_OSLDEST)"ntldr"
  566.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), ForceFileNoCompress $(NtLdrPath)
  567.         ifstr(i) $(STATUS) == ERROR
  568.             goto patchnotdone
  569.         endif
  570.     endif
  571. patchdone =+
  572.     ifstr(i) $(BillboardPushed) == TRUE
  573.         shell "subroutn.inf" PopBillboard
  574.         set BillboardPushed = FALSE
  575.     endif
  576.     shell "" DoRegistryModifications $(!STF_CSDVER)
  577.     read-syms SetupDoneDlg$(!STF_LANGUAGE)
  578.     ui start "SetupDone"
  579.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  580.         ui pop 1
  581.         goto rebootend
  582.     else
  583.         ui pop 1
  584.         goto finish1
  585.     endif
  586. patchnotdone =+
  587.     set String = $(String2)
  588. finish2 =+
  589.     ifstr(i) $(BillboardPushed) == TRUE
  590.         shell "subroutn.inf" PopBillboard
  591.         set BillboardPushed = FALSE
  592.     endif
  593.     shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String)
  594.     goto finish1
  595. finish1 =+
  596.     install   FreeSetupLibrary
  597. finish =+
  598.     install   FreePatchLibrary
  599.     exit
  600. rebootend =+
  601.     set Reboot = YES
  602.     install   Install-Shutdown
  603.     goto finish1
  604.     exit
  605. [LoadPatchLibrary]
  606.     LoadLibrary "x" patchdll.dll !PATCHLIBHANDLE
  607.     exit
  608. [FreePatchLibrary]
  609.     ifstr(i) $(!PATCHLIBHANDLE) != ""
  610.         FreeLibrary $(!PATCHLIBHANDLE)
  611.     endif
  612.     exit
  613. [LoadSetupLibrary]
  614.     LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
  615.     exit
  616. [FreeSetupLibrary]
  617.     ifstr(i) $(!LIBHANDLE) != ""
  618.         FreeLibrary $(!LIBHANDLE)
  619.     endif
  620.     exit
  621. [Install-File]
  622.     set STF_VITAL = ""
  623.     AddSectionKeyFileToCopyList $(FileSection) $(FileKey) $(FileSource) $(FileDest)
  624.     exit
  625. [Install-DoCopy]
  626.     CopyFilesInCopyList
  627.     exit
  628. [Install-Shutdown]
  629.     LibraryProcedure STATUS,$(!LIBHANDLE),ShutdownSystem $(Reboot)
  630.     exit
  631. [RegistryConstants]
  632.     MaskAllAccess          = 33554432
  633.     NoTitle                = 0
  634.     RegLastError           = $(!REG_ERROR_SUCCESS)
  635. [DoRegistryModifications]
  636.     set Status = STATUS_FAILED
  637.     read-syms RegistryConstants
  638.     set KeyPath   = { +
  639.                      {SOFTWARE,                $(NoTitle), $(MaskAllAccess)}, +
  640.                      {Microsoft,               $(NoTitle), $(MaskAllAccess)}, +
  641.                      {"Windows NT",            $(NoTitle), $(MaskAllAccess)}, +
  642.                      {CurrentVersion,          $(NoTitle), $(MaskAllAccess)}, +
  643.                      {"Time Zones",            $(NoTitle), $(MaskAllAccess)}, +
  644.                      {"E. South America Standard Time",     $(NoTitle), $(MaskAllAccess)}  +
  645.                     }
  646.     set KeyValues = { +
  647.                      {Display, $(NoTitle), $(!REG_VT_SZ), "(GMT-03:00) Brasilia" } +
  648.                     }
  649.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  650.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  651.         goto endCSDVersionCreate
  652.     endif
  653.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  654.         goto endCSDVersionCreate
  655.     else
  656.         CloseRegKey $($R1)
  657.     endif
  658.     set KeyPath   = { +
  659.                      {SYSTEM,                  $(NoTitle), $(MaskAllAccess)}, +
  660.                      {ControlSet001,           $(NoTitle), $(MaskAllAccess)}, +
  661.                      {Control,                 $(NoTitle), $(MaskAllAccess)}, +
  662.                      {ServiceGroupOrder,       $(NoTitle), $(MaskAllAccess)}  +
  663.                     }
  664.     set KeyValues = { +
  665.                      {List, $(NoTitle), $(!REG_VT_MULTI_SZ), {                       +
  666.                                                               "System Bus Extender", +
  667.                                                               "SCSI miniport",       +
  668.                                                               "port",                +
  669.                                                               "Primary disk",        +
  670.                                                               "SCSI class",          +
  671.                                                               "SCSI CDROM class",    +
  672.                                                               "filter",              +
  673.                                                               "boot file system",    +
  674.                                                               "Base",                +
  675.                                                               "Pointer Port",        +
  676.                                                               "Keyboard Port",       +
  677.                                                               "Pointer Class",       +
  678.                                                               "Keyboard Class",      +
  679.                                                               "Video Init",          +
  680.                                                               "Video",               +
  681.                                                               "Video Save",          +
  682.                                                               "file system",         +
  683.                                                               "Event log",           +
  684.                                                               "Streams Drivers",     +
  685.                                                               "NDIS",                +
  686.                                                               "TDI",                 +
  687.                                                               "NetBIOSGroup",        +
  688.                                                               "SpoolerGroup",        +
  689.                                                               "NetDDEGroup",         +
  690.                                                               "Parallel arbitrator", +
  691.                                                               "extended base",       +
  692.                                                               "RemoteValidation",    +
  693.                                                               "PCI Configuration"    +
  694.                                                              } }  +
  695.                     }
  696.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  697.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  698.         goto endCSDVersionCreate
  699.     endif
  700.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  701.         goto endCSDVersionCreate
  702.     else
  703.         CloseRegKey $($R1)
  704.     endif
  705.     set KeyPath   = { +
  706.                      {SYSTEM,                  $(NoTitle), $(MaskAllAccess)}, +
  707.                      {CurrentControlSet,       $(NoTitle), $(MaskAllAccess)}, +
  708.                      {Control,                 $(NoTitle), $(MaskAllAccess)}, +
  709.                      {Lsa,                     $(NoTitle), $(MaskAllAccess)}  +
  710.                     }
  711.     set KeyValues = { +
  712.                      {UpgradeSam, $(NoTitle), $(!REG_VT_DWORD), 1} +
  713.                     }
  714.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  715.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  716.         goto endCSDVersionCreate
  717.     endif
  718.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  719.         goto endCSDVersionCreate
  720.     else
  721.         CloseRegKey $($R1)
  722.     endif
  723.     set KeyPath   = { +
  724.                      {SYSTEM,            $(NoTitle), $(MaskAllAccess)}, +
  725.                      {CurrentControlSet, $(NoTitle), $(MaskAllAccess)}, +
  726.                      {Control,           $(NoTitle), $(MaskAllAccess)}, +
  727.                      {ProductOptions,    $(NoTitle), $(MaskAllAccess)}, +
  728.                     }
  729.     set KeyValues = { +
  730.                      {CSDVersion, $(NoTitle), $(!REG_VT_DWORD), $($0) } +
  731.                     }
  732.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  733.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  734.         goto endCSDVersionCreate
  735.     endif
  736.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  737.         goto endCSDVersionCreate
  738.     else
  739.         CloseRegKey $($R1)
  740.     endif
  741.     set Status = STATUS_SUCCESSFUL
  742. endCSDVersionCreate = +
  743.     Return $(Status)
  744. [GetCSDVersion]
  745.     set Status = STATUS_SUCCESSFUL
  746.     read-syms RegistryConstants
  747.     set CSDVersion = 0
  748.     set KeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
  749.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  750.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  751.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  752.         goto end_GetCSDVersion
  753.     endif
  754.     GetRegValue $(KeyHandle) "CSDVersion" CSDVersionValue
  755.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  756.         CloseRegKey $(KeyHandle)
  757.         goto end_GetCSDVersion
  758.     endif
  759.     set CSDVersion =  *($(CSDVersionValue), 4)
  760.     CloseRegKey $(KeyHandle)
  761. end_GetCSDVersion = +
  762.     Return $(Status) $(CSDVersion)
  763. [GetCheckedFree]
  764.     set Status = STATUS_SUCCESSFUL
  765.     read-syms RegistryConstants
  766.     set System = Free
  767.     set KeyName = "Software\Microsoft\Windows NT\CurrentVersion"
  768.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  769.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  770.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  771.         goto end_GetCheckedFree
  772.     endif
  773.     GetRegValue $(KeyHandle) "CurrentType" CurrentTypeValue
  774.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  775.         CloseRegKey $(KeyHandle)
  776.         goto end_GetCheckedFree
  777.     endif
  778.     Split-String *($(CurrentTypeValue), 4) " " CurrentTypeList
  779.     ForListDo $(CurrentTypeList)
  780.        ifstr(i) $($) == "free"
  781.           set System = free
  782.        else-ifstr(i) $($) == "checked"
  783.           set System = checked
  784.        endif
  785.     EndForListDo
  786.     CloseRegKey $(KeyHandle)
  787. end_GetCheckedFree = +
  788.     Return $(Status) $(System)
  789. [QueryOkCancel]
  790.     set DlgText = $($0)
  791.     read-syms QueryOKCancelDlg$(!STF_LANGUAGE)
  792.     ui start "SetupMessage"
  793.     ifstr(i) $(DLGEVENT) == "OK"
  794.         set Status     = STATUS_SUCCESSFUL
  795.         set UserAction = $(DLGEVENT)
  796.     else-ifstr(i) $(DLGEVENT) == "CANCEL"
  797.         set Status     = STATUS_SUCCESSFUL
  798.         set UserAction = $(DLGEVENT)
  799.     else
  800.         set Status     = STATUS_FAILED
  801.         set UserAction = "CANCEL"
  802.     endif
  803.     Return $(Status) $(UserAction)
  804. [Source Media Descriptions]
  805.     1 = "Windows NT Workstation CD-ROM" , TAGFILE = cdrom.w
  806. [Signature]
  807.     FileType = MICROSOFT_FILE
  808. [GetSignature]
  809.     read-syms Signature
  810.     return $(FileType)
  811. [ProductType]
  812. STF_PRODUCT  = Winnt
  813. STF_PLATFORM = I386
  814. [Source Media Descriptions]
  815.     1  = "Windows NT 3.51 Update Disk #1"  , TAGFILE = disk1
  816.     2  = "Windows NT 3.51 Update Disk #2"  , TAGFILE = disk2
  817.     3  = "Windows NT 3.51 Update Disk #3"  , TAGFILE = disk3
  818.     4  = "Windows NT 3.51 Update Disk #4"  , TAGFILE = disk4
  819.     5  = "Windows NT 3.51 Update Disk #5"  , TAGFILE = disk5
  820.     6  = "Windows NT 3.51 Update Disk #6"  , TAGFILE = disk6
  821.     7  = "Windows NT 3.51 Update Disk #7"  , TAGFILE = disk7
  822.     8  = "Windows NT 3.51 Update Disk #8"  , TAGFILE = disk8
  823.     9  = "Windows NT 3.51 Update Disk #9"  , TAGFILE = disk9
  824.     10 = "Windows NT 3.51 Update Disk #10" , TAGFILE = disk10
  825. [Strings]
  826.     String1 = "This update disk cannot be used on this platform."
  827.     String2 = "Setup failed to update the system."
  828.     String3 = "Setup has successfully updated your system."
  829.     String4 = "You do not have permission to update the system.  Please contact your system administrator."
  830.     String5 = "Setup failed to setup your updated files for secure operation."
  831.     String8 = "Setup has detected that the version of the system installed is "+
  832.               "newer than the update you are applying to it.  The update can render "+
  833.               "your system unstartable.  Press OK if you still wish to continue "+
  834.               "or press Cancel to exit Setup."
  835.     String9 = "Setup is going to update your Windows NT system with the English "+
  836.               "version of the update program.  If you wish to cancel the update "+
  837.               "process, please press Cancel or press OK to continue."
  838.     String11 = "Setup couldn't find the setup.log file in your repair directory. "+
  839.                "Setup cannot proceed to update your system.  Please copy the setup.log "+
  840.                "file from your Emergency Repair Disk to your repair directory "+
  841.                "and restart the update."
  842.     String12 = "Setup has not updated your system.  If you wish to update your "+
  843.                "system please run the update utility again."
  844.     String13a = "Not enough hard disk space to run Setup.  Setup needs at least "
  845.     String13b = "MB of free hard disk space on "
  846.     String13c = " before it can be run.  Delete some"+
  847.                 " files and run the Update program again."
  848.     String14  = "Setup cannot update your Windows NT files because it could not "+
  849.                 "determine your product type.  Your registry may be corrupt."
  850.     String15  = "Setup cannot update your checked system.  The update can only "+
  851.                 "be applied to the retail system."
  852.     String16  = "Setup cannot update your Windows NT files because your system is "+
  853.                 "NT 3.1 or NT 3.5. Please upgrade your system to the retail Windows NT 3.51, "+
  854.                 "and then update your system."
  855.     String17  = "Setup cannot update your Windows NT files because your system is "+
  856.                 "a pre-release of NT 3.51. Please upgrade your system to the retail "+
  857.                 "Windows NT 3.51, and then update your system."
  858.     String18  = "Setup cannot update your Windows NT files because your system is "+
  859.                 "a version later than NT 3.51.  The update can only be applied "+
  860.                 "to Windows NT 3.51."
  861.     String19  = "Setup cannot update your Windows NT files because you have installed "+
  862.                 "the IBM Power Management version of NT 3.51.  Please see IBM for "+
  863.                 "a Service Pack that can be installed on your system."
  864.     Billboard1 = "Please wait..."
  865.     Billboard2 = "Please wait while the files to be updated are determined..."
  866.     Billboard3 = "Please wait while the Emergency Repair Disk is updated..."
  867. [ProgressCopyENG]
  868.     ProCaption   = "Windows NT Setup"
  869.     ProCancel    = "Cancel"
  870.     ProCancelMsg = "The Windows NT 3.51 files are not completely updated.  Are you sure you want "+
  871.                    "to cancel copying files?"
  872.     ProCancelCap = "Setup Message"
  873.     ProText1     = "Copying:"
  874.     ProText2     = "To:"
  875. [SetupDoneDlgENG]
  876.     Caption     = "Windows NT Setup"
  877.     DlgText     = "Windows NT 3.51 has been updated. If you change or add "+
  878.                   "any components to your system, you will need to "+
  879.                   "reapply the update."$(!LF)$(!LF)+
  880.                   "Remove disks from the floppy disk drives and "+
  881.                   "choose Restart Computer to run the updated system."
  882.     Reboot      = "&Restart Computer"
  883.     Windows     = "E&xit to Windows NT"
  884.     DlgType     = "Info"
  885.     DlgTemplate = "REBOOT"
  886. [QueryOKCancelDlgENG]
  887.     STF_MB_TITLE = "Setup Message"
  888.     DlgType      = "MessageBox"
  889.     STF_MB_TEXT  = $(DlgText)
  890.     STF_MB_TYPE  = 2
  891.     STF_MB_ICON  = 4
  892.     STF_MB_DEF   = 1
  893.